package com.spsoft.vatoutinv.entity.vmshzqrdmanage;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.KeySequence;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;

/**
 * <p>
 * 红字确认单申请流程表-主表
 * </p>
 *
 * @author chenxudong
 * @since 2024-01-02
 */
@Data
@EqualsAndHashCode
@TableName("VMS_APPROVAL_HZQRD")
@ApiModel(value="VmsApprovalHzqrd对象", description="红字确认单申请流程表-主表")
@KeySequence(value = "SEQ_VMS_APPROVAL_HZQRD")
public class VmsApprovalHzqrd implements Serializable {

    private static final long serialVersionUID = 1L;

    /**
     * 主键
     */
    @ApiModelProperty(value = "主键")
    @TableId(value = "ID", type = IdType.INPUT)
    private Long id;

    /**
     * 审批流程ID
     */
    @ApiModelProperty(value = "审批流程ID")
    private Long applyId;

    /**
     * 审批流程类型;0：红字确认单申请 1：红字确认单确认
     */
    @ApiModelProperty(value = "审批流程类型;0：红字确认单申请 1：红字确认单确认")
    private String applyType;

    /**
     * 红字确认单 UUID
     */
    @ApiModelProperty(value = "红字确认单 UUID")
    private String uuid;

    /**
     * 红字发票信息确认单编号
     */
    @ApiModelProperty(value = "红字发票信息确认单编号")
    private String hzfpxxqrdbh;

    /**
     * 录入方身份;0：销方 1：购方
     */
    @ApiModelProperty(value = "录入方身份;0：销方 1：购方")
    private String lrfsf;

    /**
     * （销售方）统一社会信用代码/纳税人识别号/身份证件号码
     */
    @ApiModelProperty(value = "（销售方）统一社会信用代码/纳税人识别号/身份证件号码")
    private String xsfnsrsbh;

    /**
     * （销售方）名称
     */
    @ApiModelProperty(value = "（销售方）名称")
    private String xsfmc;

    /**
     * （购买方）统一社会信用代码/纳税人识别号/身份证件号码
     */
    @ApiModelProperty(value = "（购买方）统一社会信用代码/纳税人识别号/身份证件号码")
    private String gmfnsrsbh;

    /**
     * （购买方）名称
     */
    @ApiModelProperty(value = "（购买方）名称")
    private String gmfmc;

    /**
     * 购买方是否抵扣/入账
     */
    @ApiModelProperty(value = "购买方是否抵扣/入账")
    private String gmfsfdkrz;

    /**
     * 购买方未抵扣原因
     */
    @ApiModelProperty(value = "购买方未抵扣原因")
    private String gmfwdkyy;

    /**
     * 蓝字发票代码
     */
    @ApiModelProperty(value = "蓝字发票代码")
    private String lzfpdm;

    /**
     * 蓝字发票号码
     */
    @ApiModelProperty(value = "蓝字发票号码")
    private String lzfphm;

    /**
     * 是否纸质发票标志;Y：纸质发票， N：电子发票
     */
    @ApiModelProperty(value = "是否纸质发票标志;Y：纸质发票， N：电子发票")
    private String sfzzfpbz;

    /**
     * 蓝字发票开票日期;yyyy-MM-dd HH:mm:ss
     */
    @ApiModelProperty(value = "蓝字发票开票日期;yyyy-MM-dd HH:mm:ss")
    private Date lzkprq;

    /**
     * 蓝字发票合计金额
     */
    @ApiModelProperty(value = "蓝字发票合计金额")
    private BigDecimal lzhjje;

    /**
     * 蓝字发票合计税额
     */
    @ApiModelProperty(value = "蓝字发票合计税额")
    private BigDecimal lzhjse;

    /**
     * 蓝字发票票种代码;01: 数电专 02: 数电普 03: 数电-机动车统 一销售发票 04: 数电-二手车统 一销售发票
     */
    @ApiModelProperty(value = "蓝字发票票种代码;01: 数电专 02: 数电普 03: 数电-机动车统 一销售发票 04: 数电-二手车统 一销售发票")
    private String lzfppzdm;

    /**
     * 蓝字发票特定要素类型代码;01：成品油发票 02：稀土发票 03：建筑服务发票 04：货物运输服务发票 05：不动产销售服务发票 06：不动产租赁服务发票 07：代收车船税 08：通行费 09：旅客运输服务发票 10：医疗服务（住院）发票 11：医疗服务（门诊）发票 12：自产农产 品销售发票 13 拖拉机和联合收割机发票 14：机动车 15：二手车 16：农产品收购发票 17：光伏收购发票 18：卷烟发票  20：农产品
     */
    @ApiModelProperty(value = "蓝字发票特定要素类型代码;01：成品油发票 02：稀土发票 03：建筑服务发票 04：货物运输服务发票 05：不动产销售服务发票 06：不动产租赁服务发票 07：代收车船税 08：通行费 09：旅客运输服务发票 10：医疗服务（住院）发票 11：医疗服务（门诊）发票 12：自产农产 品销售发票 13 拖拉机和联合收割机发票 14：机动车 15：二手车 16：农产品收购发票 17：光伏收购发票 18：卷烟发票  20：农产品")
    private String lzfptdyslxdm;

    /**
     * 红字冲销金额
     */
    @ApiModelProperty(value = "红字冲销金额")
    private BigDecimal hzcxje;

    /**
     * 红字冲销税额
     */
    @ApiModelProperty(value = "红字冲销税额")
    private BigDecimal hzcxse;

    /**
     * 红字确认单明细数量
     */
    @ApiModelProperty(value = "红字确认单明细数量")
    private Long hzqrdmxsl;

    /**
     * 红字发票冲红原因代码;01：开票有误 02：销货退回 03：服务中止 04：销售折让
     */
    @ApiModelProperty(value = "红字发票冲红原因代码;01：开票有误 02：销货退回 03：服务中止 04：销售折让")
    private String chyydm;

    /**
     * 冲红类型;7：部分红冲，8：全额红冲
     */
    @ApiModelProperty(value = "冲红类型;7：部分红冲，8：全额红冲")
    private String chlx;

    /**
     * 红字确认信息状态代码;01 无需确认 02 销方录入待购方确认 03 购方录入待销方确认 04 购销双方已确认 05 作废（销方录入购方否认） 06 作废（购方录入销方否认） 07 作废（超72小时未确认） 08（发起方撤销） 09 作废（确认后撤销） 10 作废（异常凭证）
     */
    @ApiModelProperty(value = "红字确认信息状态代码;01 无需确认 02 销方录入待购方确认 03 购方录入待销方确认 04 购销双方已确认 05 作废（销方录入购方否认） 06 作废（购方录入销方否认） 07 作废（超72小时未确认） 08（发起方撤销） 09 作废（确认后撤销） 10 作废（异常凭证）")
    private String hzqrxxztdm;

    /**
     * 确认日期;yyyy-MM-dd HH:mm:ss
     */
    @ApiModelProperty(value = "确认日期;yyyy-MM-dd HH:mm:ss")
    private Date qrrq;

    /**
     * 已开具红字发票标志;Y：已开具 N：未开具
     */
    @ApiModelProperty(value = "已开具红字发票标志;Y：已开具 N：未开具")
    private String ykjhzfpbz;

    /**
     * 红字发票号码
     */
    @ApiModelProperty(value = "红字发票号码")
    private String hzfphm;

    /**
     * 红字开票日期;yyyy-MM-dd HH:mm:ss
     */
    @ApiModelProperty(value = "红字开票日期;yyyy-MM-dd HH:mm:ss")
    private Date hzkprq;

    /**
     * 有效标志;Y：有效 N：无效
     */
    @ApiModelProperty(value = "有效标志;Y：有效 N：无效")
    private String yxbz;

    /**
     * 录入日期;yyyy-MM-dd HH:mm:ss
     */
    @ApiModelProperty(value = "录入日期;yyyy-MM-dd HH:mm:ss")
    private Date lrrq;

    /**
     * 交易机构id
     */
    @ApiModelProperty(value = "交易机构id")
    private String qydjid;

    /**
     * 创建时间/红字确认单申请日期
     */
    @ApiModelProperty(value = "创建时间/红字确认单申请日期")
    private Date creatTime;

    /**
     * 创建人
     */
    @ApiModelProperty(value = "创建人")
    private String creatBy;

    /**
     * 更新时间
     */
    @ApiModelProperty(value = "更新时间")
    private Date updateTime;

    /**
     * 更新人
     */
    @ApiModelProperty(value = "更新人")
    private String updateBy;

    /**
     * 审批人
     */
    @ApiModelProperty(value = "审批人")
    private String approvalBy;

    /**
     * 删除标志 0：正常 1：删除
     */
    @ApiModelProperty(value = "删除标志")
    private String delFlag;

}
